草庐IT

c++ - Swig -includeall 除了...

全部标签

java - SWIG 将生成的类从不同的模块和包导入当前类

我很难获得SWIGtypemap(javapackage)正常工作。我尝试制作一个简单版本的问题,但似乎也失败了。foo.h:#ifndefFOO_H#defineFOO_HclassFoo{public:Foo(){};intdoSomething(){return1};};#endifbar.h:#ifndefBAR_H#defineBAR_H#include"foo.h"classBar{public:Bar(){};intdoSomething(Foofoo){returnfoo.doSomething();};};#endifFoo.i%moduleFooMod%includ

c++ - 幂函数输出错误 - C

这个问题在这里已经有了答案:returnvalueofpow()getsroundeddownifassignedtoaninteger(4个答案)关闭9年前。pow()函数给出了非常奇怪的输出。我尝试了各种组合:#include#includeintmain(){intd=1;longlongn1,n2;while(d这给出了错误的输出,即99而不是100等等。现在,如果我删除其中一个变量,ans。是正确的。如果我使用常量而不是d,则ans是正确的。如果我将n1和n2取为double,则ans是正确的。所以有两个pow()函数,它们都将变量作为幂,并将类型转换为整数会产生错误的输出。

c++ - 为 C++ 库创建自动 C 包装器?

假设我有一个C++DLL。AFAIK,没有广泛采用的C++ABI标准,因此为了确保它能正常工作并且不依赖于目标应用程序的编译器,我需要将我的库包装在C接口(interface)中。有没有什么工具可以自动生成这样的界面?如果他们可以围绕C接口(interface)生成包装器,看起来就像是原始的C++对象,那也很好,例如Foo*f=newFoo();//FooWrapper*fw=Foo_create();f->bar("test");//Foo_bar(fw,"test")转换为使用生成的CABI在我的库中调用的C函数。我知道C++是相当复杂的语言,并不是所有的东西都可以轻易地包装在C接

c++ - 如何使用c宏生成函数名

宏“VER”在其他一些我无法更改的头文件中被定义为“((u_long)1)”。在我的代码中,我需要使用“test”和VER组合函数“test_1”。但是编译器报告错误,因为它是“test_((u_long)1)”而不是“test_1”生成的。我的问题是:如何编写宏来生成“test_1”?提前致谢!#defineVER((u_long)1)/*ThisisdefinedinsomeotherheaderfilewhichIcan'tchange*/#definepaste(x,y,z)x##y##z#definepaste2(x,y,z)paste(x,y,z)#definefcall(

c++ - 使用 x264 将 OpenGL 输出转换为 H264

我想将OpenGL程序的输出转换为h264并流式传输输出。我在某个地方收集了大部分代码并得到了一个输出文件,但我不知道如何处理它,或者它是否有效。目前输出仅保存在file.h264中。编辑:“全局”变量x264_param_tparam;x264_t*encoder;x264_picture_tpic_in;x264_picture_tpic_out;x264_nal_t*headers;inti_nal;FILE*pFile;我的初始化函数:initX264(){pFile=fopen("file.h264","wb");x264_param_tparam;x264_param_de

c++ - 有没有支持任意位置位操作的高性能C/C++库?

有没有高性能的C/C++库,支持任意位置的位操作?例如:intBitCompare(constvoid*src,size_tsrcOffsetInBits,constvoid*dst,size_tdstOffsetInBits,size_tsizeInBits);比较src中的位[srcOffsetInBits,srcOffsetInBits+sizeInBits-1]和dst中的[dstOffsetInBits,dstOffsetInBits+sizeInBits-1]的函数,这些位被认为是little-endian无符号整数。假定所有缓冲区都足够大。boolBitEqual(...

c++ - 如何在 scandir 中参数化选择函数

scandir()函数扫描目录dir,调用每个目录条目上的select()作为“int(*filter)(conststructdirent*)”如何将模式值作为参数传递给过滤器中使用的fnmatch(constchar*pattern,constchar*string,intflags)函数?这是我的示例代码intmy_selectgrf(conststructdirent*namelist){intr=0;charmy_pattern[]="*.grf";r=fnmatch(my_pattern,namelist->d_name,FNM_PERIOD);return(r==0)?1

java - 语义分析编译器阶段的子阶段是什么?

我对了解编译器的真正工作原理很感兴趣。我翻了几本书,他们都同意编译器阶段大致是这样的(如果我错了请纠正我):词法分析,语法分析,语义分析,中间代码,代码优化,代码生成。词汇和语法阶段作为方法看起来非常清晰和直接(但这当然并不意味着容易)。但是,我仍然无法找到语义阶段的真正组成部分。首先,我知道应该有一些子阶段,比如范围检查、声明检查和类型检查,但一直困扰我的问题是:是否还有其他事情必须要做。你能告诉我在这个阶段必须采取的强制性步骤是什么吗?我知道这在很大程度上取决于编程语言和编译器的实现,但你能给我一些关于C/C++、Java的例子吗?你能不能给我指一本书/页面/文章,我在哪里可以深入

c++ - 如何用另一种语言(可能是 C++)实现 Python 集?

我想将我已经编写的一些Python代码翻译成C++或其他快速语言,因为Python的速度不够快,无法完成我想做的事情。然而,有问题的代码滥用了Python集合的一些令人印象深刻的特性,特别是平均O(1)成员测试,我在性能关键循环中发送垃圾邮件,而且我不确定如何用另一种语言实现Python集合。在Python'sTimeComplexityWikiPage,它表示集合平均具有O(1)次成员测试,在最坏情况下为O(n)。我使用timeit亲自对此进行了测试,并且惊讶于Python集执行成员资格测试的速度如此之快,即使N很大。我查看了thisStackOverflowanswer。查看在使用

c++ - 如何链接英特尔 MKL 库,仅使用 cblas_dgemm 函数

我想测试IntelMKL矩阵乘法,所以我包含并只使用cblas_dgemm函数,但它总是说undefinedreferenceto`cblas_dgemm'我也链接了-lmkl_core-lmkl_blas95_lp64-lmkl_lapack95_lp64,但是我测试了$MKLROOT/lib/intel64/目录下库的很多组合,报错仍然存在。有人可以给我一些建议吗?谢谢。 最佳答案 也许这是一个正确的答案,我们可以使用cblas_:在QTCreator的项目文件中:unix{INCLUDEPATH+=/opt/intel/mkl